#pragma once

#include <vector>
#include <concrt.h>
#include "IllegalArgumentException.h"

class Decompressor
{
private:
	std::vector<unsigned char> _data;
	unsigned int _paddingLength;
protected:
	std::vector<unsigned char> readDataRle8(bool absoluteMode, int *dataIndex);
public:
	Decompressor(std::vector<unsigned char> data, unsigned int paddingSize)throw(IllegalArgumentException);
	std::vector<unsigned char> Rle8();
	std::vector<float> Rle4();
	std::vector<float> Jpeg();
	std::vector<float> Png();
	std::vector<float> Bitfields();
		
	~Decompressor(void);
};

